<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>QtWebApp: stefanfrings::FileLogger Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">QtWebApp
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classstefanfrings_1_1FileLogger.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classstefanfrings_1_1FileLogger-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">stefanfrings::FileLogger Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classstefanfrings_1_1Logger.html" title="Decorates and writes log messages to the console, stderr.">Logger</a> that uses a text file for output.  
 <a href="classstefanfrings_1_1FileLogger.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="filelogger_8h_source.html">filelogger.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for stefanfrings::FileLogger:</div>
<div class="dyncontent">
<div class="center"><img src="classstefanfrings_1_1FileLogger__inherit__graph.png" border="0" usemap="#astefanfrings_1_1FileLogger_inherit__map" alt="Inheritance graph"/></div>
<map name="astefanfrings_1_1FileLogger_inherit__map" id="astefanfrings_1_1FileLogger_inherit__map">
<area shape="rect" title="Logger that uses a text file for output." alt="" coords="5,155,180,181"/>
<area shape="rect" href="classstefanfrings_1_1Logger.html" title="Decorates and writes log messages to the console, stderr." alt="" coords="17,80,169,107"/>
<area shape="rect" title=" " alt="" coords="55,5,130,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for stefanfrings::FileLogger:</div>
<div class="dyncontent">
<div class="center"><img src="classstefanfrings_1_1FileLogger__coll__graph.png" border="0" usemap="#astefanfrings_1_1FileLogger_coll__map" alt="Collaboration graph"/></div>
<map name="astefanfrings_1_1FileLogger_coll__map" id="astefanfrings_1_1FileLogger_coll__map">
<area shape="rect" title="Logger that uses a text file for output." alt="" coords="5,155,180,181"/>
<area shape="rect" href="classstefanfrings_1_1Logger.html" title="Decorates and writes log messages to the console, stderr." alt="" coords="17,80,169,107"/>
<area shape="rect" title=" " alt="" coords="55,5,130,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a66f7297215f2a7843f924051b78fe7df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1FileLogger.html#a66f7297215f2a7843f924051b78fe7df">FileLogger</a> (QSettings *settings, const int refreshInterval=10000, QObject *parent=nullptr)</td></tr>
<tr class="memdesc:a66f7297215f2a7843f924051b78fe7df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="classstefanfrings_1_1FileLogger.html#a66f7297215f2a7843f924051b78fe7df">More...</a><br /></td></tr>
<tr class="separator:a66f7297215f2a7843f924051b78fe7df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab08af44f2de3fe1b51158132f9a399dd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1FileLogger.html#ab08af44f2de3fe1b51158132f9a399dd">~FileLogger</a> ()</td></tr>
<tr class="memdesc:ab08af44f2de3fe1b51158132f9a399dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="classstefanfrings_1_1FileLogger.html#ab08af44f2de3fe1b51158132f9a399dd">More...</a><br /></td></tr>
<tr class="separator:ab08af44f2de3fe1b51158132f9a399dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9258a5e72c22a6b14e25af8eae2092c1"><td class="memItemLeft" align="right" valign="top"><a id="a9258a5e72c22a6b14e25af8eae2092c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1FileLogger.html#a9258a5e72c22a6b14e25af8eae2092c1">write</a> (const <a class="el" href="classstefanfrings_1_1LogMessage.html">LogMessage</a> *logMessage)</td></tr>
<tr class="memdesc:a9258a5e72c22a6b14e25af8eae2092c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a message to the log file. <br /></td></tr>
<tr class="separator:a9258a5e72c22a6b14e25af8eae2092c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classstefanfrings_1_1Logger"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classstefanfrings_1_1Logger')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classstefanfrings_1_1Logger.html">stefanfrings::Logger</a></td></tr>
<tr class="memitem:a002e7ed636e30aa9fa73bc08b96201d3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a002e7ed636e30aa9fa73bc08b96201d3">Logger</a> (QObject *parent)</td></tr>
<tr class="memdesc:a002e7ed636e30aa9fa73bc08b96201d3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="classstefanfrings_1_1Logger.html#a002e7ed636e30aa9fa73bc08b96201d3">More...</a><br /></td></tr>
<tr class="separator:a002e7ed636e30aa9fa73bc08b96201d3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e5296c24964b38d93a2a13db532db33 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a2e5296c24964b38d93a2a13db532db33">Logger</a> (const QString <a class="el" href="classstefanfrings_1_1Logger.html#ab7dada738f69e822329edd76889bb758">msgFormat</a>=&quot;{timestamp} {type} {msg}&quot;, const QString <a class="el" href="classstefanfrings_1_1Logger.html#a04eed4523912a75a31d75589f9eb81db">timestampFormat</a>=&quot;dd.MM.yyyy hh:mm:ss.zzz&quot;, const QtMsgType <a class="el" href="classstefanfrings_1_1Logger.html#a032b8dabe616327d58e97b1a5c853f86">minLevel</a>=QtDebugMsg, const int <a class="el" href="classstefanfrings_1_1Logger.html#a9e6f76da976e3f09962c7613ad7aad8a">bufferSize</a>=0, QObject *parent=nullptr)</td></tr>
<tr class="memdesc:a2e5296c24964b38d93a2a13db532db33 inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="classstefanfrings_1_1Logger.html#a2e5296c24964b38d93a2a13db532db33">More...</a><br /></td></tr>
<tr class="separator:a2e5296c24964b38d93a2a13db532db33 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb668a9e186a25fbaad2e4af6d1ed00a inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top"><a id="acb668a9e186a25fbaad2e4af6d1ed00a"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#acb668a9e186a25fbaad2e4af6d1ed00a">~Logger</a> ()</td></tr>
<tr class="memdesc:acb668a9e186a25fbaad2e4af6d1ed00a inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:acb668a9e186a25fbaad2e4af6d1ed00a inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af731fc45cf731695d5f971472032190d inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#af731fc45cf731695d5f971472032190d">log</a> (const QtMsgType type, const QString &amp;message, const QString &amp;file=&quot;&quot;, const QString &amp;function=&quot;&quot;, const int line=0)</td></tr>
<tr class="memdesc:af731fc45cf731695d5f971472032190d inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decorate and log the message, if type&gt;=minLevel.  <a href="classstefanfrings_1_1Logger.html#af731fc45cf731695d5f971472032190d">More...</a><br /></td></tr>
<tr class="separator:af731fc45cf731695d5f971472032190d inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a333125f7ac75da148f3345ad4e5c49f3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a333125f7ac75da148f3345ad4e5c49f3">installMsgHandler</a> ()</td></tr>
<tr class="memdesc:a333125f7ac75da148f3345ad4e5c49f3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs this logger as the default message handler, so it can be used through the global static logging functions (e.g.  <a href="classstefanfrings_1_1Logger.html#a333125f7ac75da148f3345ad4e5c49f3">More...</a><br /></td></tr>
<tr class="separator:a333125f7ac75da148f3345ad4e5c49f3 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dc933a2f38098fc539f7e17fc39da41 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a4dc933a2f38098fc539f7e17fc39da41">clear</a> (const bool buffer=true, const bool variables=true)</td></tr>
<tr class="memdesc:a4dc933a2f38098fc539f7e17fc39da41 inherit pub_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the thread-local data of the current thread.  <a href="classstefanfrings_1_1Logger.html#a4dc933a2f38098fc539f7e17fc39da41">More...</a><br /></td></tr>
<tr class="separator:a4dc933a2f38098fc539f7e17fc39da41 inherit pub_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a01eac5311649ce150df7bdf084925d05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1FileLogger.html#a01eac5311649ce150df7bdf084925d05">timerEvent</a> (QTimerEvent *event)</td></tr>
<tr class="memdesc:a01eac5311649ce150df7bdf084925d05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for timer events.  <a href="classstefanfrings_1_1FileLogger.html#a01eac5311649ce150df7bdf084925d05">More...</a><br /></td></tr>
<tr class="separator:a01eac5311649ce150df7bdf084925d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classstefanfrings_1_1Logger"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classstefanfrings_1_1Logger')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classstefanfrings_1_1Logger.html">stefanfrings::Logger</a></td></tr>
<tr class="memitem:aeec74ca028bceb107a2337c5f6090432 inherit pub_static_methods_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#aeec74ca028bceb107a2337c5f6090432">set</a> (const QString &amp;name, const QString &amp;value)</td></tr>
<tr class="memdesc:aeec74ca028bceb107a2337c5f6090432 inherit pub_static_methods_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a thread-local variable that may be used to decorate log messages.  <a href="classstefanfrings_1_1Logger.html#aeec74ca028bceb107a2337c5f6090432">More...</a><br /></td></tr>
<tr class="separator:aeec74ca028bceb107a2337c5f6090432 inherit pub_static_methods_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classstefanfrings_1_1Logger"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classstefanfrings_1_1Logger')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classstefanfrings_1_1Logger.html">stefanfrings::Logger</a></td></tr>
<tr class="memitem:ab7dada738f69e822329edd76889bb758 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top"><a id="ab7dada738f69e822329edd76889bb758"></a>
QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#ab7dada738f69e822329edd76889bb758">msgFormat</a></td></tr>
<tr class="memdesc:ab7dada738f69e822329edd76889bb758 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format string for message decoration. <br /></td></tr>
<tr class="separator:ab7dada738f69e822329edd76889bb758 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04eed4523912a75a31d75589f9eb81db inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top"><a id="a04eed4523912a75a31d75589f9eb81db"></a>
QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a04eed4523912a75a31d75589f9eb81db">timestampFormat</a></td></tr>
<tr class="memdesc:a04eed4523912a75a31d75589f9eb81db inherit pro_attribs_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format string of timestamps. <br /></td></tr>
<tr class="separator:a04eed4523912a75a31d75589f9eb81db inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a032b8dabe616327d58e97b1a5c853f86 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top"><a id="a032b8dabe616327d58e97b1a5c853f86"></a>
QtMsgType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a032b8dabe616327d58e97b1a5c853f86">minLevel</a></td></tr>
<tr class="memdesc:a032b8dabe616327d58e97b1a5c853f86 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum level of message types that are written out directly or trigger writing the buffered content. <br /></td></tr>
<tr class="separator:a032b8dabe616327d58e97b1a5c853f86 inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e6f76da976e3f09962c7613ad7aad8a inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a9e6f76da976e3f09962c7613ad7aad8a">bufferSize</a></td></tr>
<tr class="memdesc:a9e6f76da976e3f09962c7613ad7aad8a inherit pro_attribs_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of backtrace buffer, number of messages per thread.  <a href="classstefanfrings_1_1Logger.html#a9e6f76da976e3f09962c7613ad7aad8a">More...</a><br /></td></tr>
<tr class="separator:a9e6f76da976e3f09962c7613ad7aad8a inherit pro_attribs_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_attribs_classstefanfrings_1_1Logger"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classstefanfrings_1_1Logger')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classstefanfrings_1_1Logger.html">stefanfrings::Logger</a></td></tr>
<tr class="memitem:a724e09b39b88c5a880f2405a260949cb inherit pro_static_attribs_classstefanfrings_1_1Logger"><td class="memItemLeft" align="right" valign="top"><a id="a724e09b39b88c5a880f2405a260949cb"></a>
static QMutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstefanfrings_1_1Logger.html#a724e09b39b88c5a880f2405a260949cb">mutex</a></td></tr>
<tr class="memdesc:a724e09b39b88c5a880f2405a260949cb inherit pro_static_attribs_classstefanfrings_1_1Logger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to synchronize access of concurrent threads. <br /></td></tr>
<tr class="separator:a724e09b39b88c5a880f2405a260949cb inherit pro_static_attribs_classstefanfrings_1_1Logger"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classstefanfrings_1_1Logger.html" title="Decorates and writes log messages to the console, stderr.">Logger</a> that uses a text file for output. </p>
<p>Settings are read from a config file using a QSettings object. Config settings can be changed at runtime. </p>
<p>Example for the configuration settings: <code></p><pre>
fileName=logs/QtWebApp.log
maxSize=1000000
maxBackups=2
bufferSize=0
minLevel=WARNING
msgformat={timestamp} {typeNr} {type} thread={thread}: {msg}
timestampFormat=dd.MM.yyyy hh:mm:ss.zzz  
</pre><p></code></p>
<ul>
<li>Possible log levels are: ALL/DEBUG=0, INFO=4, WARN/WARNING=1, ERROR/CRITICAL=2, FATAL=3</li>
<li>fileName is the name of the log file, relative to the directory of the settings file. In case of windows, if the settings are in the registry, the path is relative to the current working directory.</li>
<li>maxSize is the maximum size of that file in bytes. The file will be backed up and replaced by a new file if it becomes larger than this limit. Please note that the actual file size may become a little bit larger than this limit. Default is 0=unlimited.</li>
<li>maxBackups defines the number of backup files to keep. Default is 0=unlimited.</li>
<li>bufferSize defines the size of the ring buffer. Default is 0=disabled.</li>
<li>minLevel If bufferSize=0: Messages with lower level are discarded.<br  />
 If buffersize&gt;0: Messages with lower level are buffered, messages with equal or higher level (except INFO) trigger writing the buffered messages into the file.<br  />
 Defaults is 0=debug.</li>
<li>msgFormat defines the decoration of log messages, see <a class="el" href="classstefanfrings_1_1LogMessage.html" title="Represents a single log message together with some data that are used to decorate the log message.">LogMessage</a> class. Default is "{timestamp} {type} {msg}".</li>
<li>timestampFormat defines the format of timestamps, see QDateTime::toString(). Default is "yyyy-MM-dd hh:mm:ss.zzz".</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classstefanfrings_1_1Logger.html#aeec74ca028bceb107a2337c5f6090432" title="Sets a thread-local variable that may be used to decorate log messages.">set()</a> describes how to <a class="el" href="classstefanfrings_1_1Logger.html#aeec74ca028bceb107a2337c5f6090432" title="Sets a thread-local variable that may be used to decorate log messages.">set</a> logger variables </dd>
<dd>
<a class="el" href="classstefanfrings_1_1LogMessage.html" title="Represents a single log message together with some data that are used to decorate the log message.">LogMessage</a> for a description of the message decoration. </dd>
<dd>
<a class="el" href="classstefanfrings_1_1Logger.html" title="Decorates and writes log messages to the console, stderr.">Logger</a> for a descrition of the buffer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="filelogger_8h_source.html#l00056">56</a> of file <a class="el" href="filelogger_8h_source.html">filelogger.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a66f7297215f2a7843f924051b78fe7df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66f7297215f2a7843f924051b78fe7df">&#9670;&nbsp;</a></span>FileLogger()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FileLogger::FileLogger </td>
          <td>(</td>
          <td class="paramtype">QSettings *&#160;</td>
          <td class="paramname"><em>settings</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>refreshInterval</em> = <code>10000</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QObject *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">settings</td><td>Configuration settings, usually stored in an INI file. Must not be 0. Settings are read from the current group, so the caller must have called settings-&gt;beginGroup(). Because the group must not change during runtime, it is recommended to provide a separate QSettings instance that is not used by other parts of the program. The <a class="el" href="classstefanfrings_1_1FileLogger.html" title="Logger that uses a text file for output.">FileLogger</a> does not take over ownership of the QSettings instance, so the caller should destroy it during shutdown. </td></tr>
    <tr><td class="paramname">refreshInterval</td><td>Interval of checking for changed config settings in msec, or 0=disabled </td></tr>
    <tr><td class="paramname">parent</td><td>Parent object </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="filelogger_8cpp_source.html#l00078">78</a> of file <a class="el" href="filelogger_8cpp_source.html">filelogger.cpp</a>.</p>

</div>
</div>
<a id="ab08af44f2de3fe1b51158132f9a399dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab08af44f2de3fe1b51158132f9a399dd">&#9670;&nbsp;</a></span>~FileLogger()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">FileLogger::~FileLogger </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>
<p>Closes the file. </p>

<p class="definition">Definition at line <a class="el" href="filelogger_8cpp_source.html#l00094">94</a> of file <a class="el" href="filelogger_8cpp_source.html">filelogger.cpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a01eac5311649ce150df7bdf084925d05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01eac5311649ce150df7bdf084925d05">&#9670;&nbsp;</a></span>timerEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void FileLogger::timerEvent </td>
          <td>(</td>
          <td class="paramtype">QTimerEvent *&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handler for timer events. </p>
<p>Refreshes config settings or synchronizes I/O buffer, depending on the event. This method is thread-safe. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">event</td><td>used to distinguish between the two timers. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="filelogger_8cpp_source.html#l00193">193</a> of file <a class="el" href="filelogger_8cpp_source.html">filelogger.cpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>logging/<a class="el" href="filelogger_8h_source.html">filelogger.h</a></li>
<li>logging/<a class="el" href="filelogger_8cpp_source.html">filelogger.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>stefanfrings</b></li><li class="navelem"><a class="el" href="classstefanfrings_1_1FileLogger.html">FileLogger</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
